#!/usr/bin/python

# This is a Python program to display large primorials.
# A primorial is the product of all primes up to the given number.
# Uses the programs "matho-primes" and "matho-mult" as follows:
#	primorial 1000
# runs:
#	matho-primes 0 1000 | matho-mult
#
# For fun, try:
#	primorial `matho-primes 2 97`
#
# to display all unique primorials from 2 to 97.

import os
import sys

def usage(ev):
	print "This program calculates large primorials."
	print
	print "Usage: %s integers" % os.path.basename(sys.argv[0])
	print
	print "A primorial is the product of all primes up to the given number."
	sys.exit(ev)

def output_primorial(arg):
	sys.stdout.write(arg + "# = ")
	sys.stdout.flush()
	if (os.system("matho-primes 0 " + arg + " | matho-mult") != 0):
		sys.exit(1)

args = sys.argv[1:]
if (args == []):
	usage(2)
else:
	for arg in args:
		try:
			if (int(arg) < 1):
				print >>sys.stderr, "Number too small."
				sys.exit(1)
		except:
			print >>sys.stderr, "Positive integer required."
			usage(1)
		output_primorial(arg)
